package gepes.negocio;

import gepes.dao.CategoriaDAO;
import gepes.exepcion.DAOExcepcion;
import gepes.modelo.Categoria;
import gepes.modelo.TipoCategoria;

import java.util.Collection;

public class GestionCategoria {
	public Collection<Categoria> buscarxCodigo(String dato)
			throws DAOExcepcion {
		CategoriaDAO dao = new CategoriaDAO();
		return dao.buscar(dato, "codcategoria");
	}

	public Collection<Categoria> buscarxDescripcion(String dato)
			throws DAOExcepcion {
		CategoriaDAO dao = new CategoriaDAO();
		return dao.buscar(dato, "descripcion");
	}

	public Categoria insertar(String descripcion,int tipocate) throws DAOExcepcion {
		CategoriaDAO dao = new CategoriaDAO();
		Categoria vo = new Categoria();
		vo.setDescripcion(descripcion);
		vo.setTipoCategoria(new TipoCategoria(tipocate));
		if(this.buscarxDescripcion(descripcion).size()>0)
		{
			throw new DAOExcepcion("Esa descripcion ya fue utilizada");
		}
		return dao.insertar(vo);
	}

	public Categoria obtener(int id) throws DAOExcepcion {
		CategoriaDAO dao = new CategoriaDAO();
		return dao.obtener(id);
	}

	public void anular(int id, String usuario) throws DAOExcepcion {
		CategoriaDAO dao = new CategoriaDAO();
		dao.anular(id, false, usuario);
	}

	public void activar(int id) throws DAOExcepcion {
		CategoriaDAO dao = new CategoriaDAO();
		dao.anular(id, true, "");
	}

	public Categoria editar(int id, String descripcion) throws DAOExcepcion {
		CategoriaDAO dao = new CategoriaDAO();

		Categoria vo = new Categoria();
		vo.setCodCategoria(id);
		vo.setDescripcion(descripcion);
		vo.setTipoCategoria(new TipoCategoria(1));
		return dao.editar(vo);
	}

	public Collection<Categoria> listar() throws DAOExcepcion {
		CategoriaDAO dao = new CategoriaDAO();
		return dao.listar();
	}

}
